1. Technical Field
The present invention relates generally to computer applications management and, in particular, a method and system for updating a given computer application, for example, by placing at least one trigger or xe2x80x9chookxe2x80x9d at a selected location in an underlying database for the application. When the selected location is accessed, the hook initiates a separate program or process which expands the capabilities of the underlying computer application.
2. Description of the Related Art
Large enterprise-wide networks provide a significant challenge to administrators. To meet this challenge, the software industry has developed network management tools to handle problems, changes and assets on a network. An example of this type of software is the Tivoli(copyright) Service Desk.
Tivoli(copyright) Service Desk is a comprehensive software application for maximizing the efficiency and effectiveness of a corporate service and support operation. The Tivoli(copyright) Service Desk suite consists of three integrated applications that help manage functions that are critical to an organization""s infrastructure. These applications enable the support staff to better understand and manage the complex relationships between user problems, network events, corporate assets, and changes to the IT infrastructure.
An example application in the Service Desk suite is the Tivoli(copyright) Problem Management application. This application automatically tracks, logs, and escalates (to higher levels of support) user interactions and requests. The system includes a sophisticated knowledge engine that enables analysts with different levels of experience to quickly resolve any problem. The application also includes multiple diagnostic technologies that provide online knowledge from a single, integrated knowledge base to ensure consistent, accurate answers.
However, the rapid development pace of technology can render even a flexible and powerful system obsolete. New machines and software are constantly being installed on the network. In addition, there may be legacy support applications that should be integrated to provide a more complete knowledge base. Eventually, something on the network will be installed that was not anticipated when the system management software was written. For example, with simpler technology, a specific series of questions may lead to a specific answer. The Problem Management application is designed to present the necessary questions and, in response to the questions, presents the answer from its knowledge base. However, with more complex technology, the same series of questions may lead to additional questions or the need for the system to gather data from the network. To continue to provide effective support, the application must be modified. In the prior art, modification of the application requires access to the original source code and significant programming resources.
It would be desirable to provide a method for expanding the capabilities of the application without the large investment necessary to rewrite the application. The present invention addresses this need.
It is an object of the present invention to provide a method to expand the capabilities of a given software application without the need to rewrite the application.
It is another object of the present invention to provide a software application with expanded capabilities that operate in the background and without disrupting the application""s expected behavior.
It is still another object of the present invention to provide a method for expanding the capabilities of an application to respond to the needs of new technology and/or rapid expansion of an enterprise network.
Yet another more specific object of this invention is to extend a shrink-wrapped application, e.g., a database application, to perform functions beyond the scope of those intended by the application developer.
These and other objects are accomplished generally by attaching a configurable, external monitor to the application so that a new function can be delivered that extends the application beyond its original limits yet in a manner transparent to the application.
In an illustrative embodiment, a method for augmenting the function of a database application begins by inserting one or more hooks at selected locations in a database. One or more programs are then associated with respective hooks to provide the extended functionality for the application. The method then monitors for arrival of data intended for a first selected location in the database. In response to detecting data intended for the first location, data is sent to the program associated with the hook at the first selected location to facilitate the application extension.
Another described embodiment of the invention includes a system having an augmented database application comprising: a database application stored in a computer system and that includes one or more hooks at selected locations in a database. One or more programs are associated with respective ones of the hooks to provide the extended application functionality. A listener routine is used to monitor for arrival of data intended for a first selected location in the database. An executor routine is responsive to the detection of data intended for the first location by the listener routine. The executor routine sends the data to the program associated with the hook located at the first selected location.
The foregoing has outlined some of the more pertinent features of the present invention. These should be construed to be merely illustrative of some of the more prominent features and applications of the invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or by modifying the invention as will be described. Accordingly, a fuller understanding of the invention may be had by referring to the following Detailed Description of the Preferred Embodiment.